Shim protos and client for containerd
containerd-shim-protos
contains TTRPC bindings and client/server code to interact with containerd's runtime v2 shims.
Runtime
This crate is mainly expected to be useful to interact with containerd's shim runtime. Runtime v2 introduces a first class shim API for runtime authors to integrate with containerd. The shim API is minimal and scoped to the execution lifecycle of a container.
To learn how containerd's shim v2 runtime works in details, please refer to the documentation.
Design
The containerd-shim-protos
crate provides Protobuf message
and TTRPC service definitions for the
Containerd shim v2 protocol.
The message and service definitions are auto-generated from protobuf source files under vendor/
by using ttrpc-codegen. So please do not
edit those auto-generated source files.
If upgrading/modification is needed, please follow the steps:
- Synchronize the latest protobuf source files from the upstream projects into directory 'vendor/'.
- Re-generate the source files by
cargo build --features=generate_bindings
. - Commit the synchronized protobuf source files and auto-generated source files, keeping them in synchronization.
Usage
Add containerd-shim-client
as a dependency in your Cargo.toml
[]
= "0.4"
Basic client code looks as follows:
use containerd_shim_protos as client;
let client = connect.expect;
let task_client = new;
let context = with_timeout;
let req = ConnectRequest ;
let resp = task_client.connect.expect;
Example
The way to build the example:
# build sync connect, client and server
# build async connect, client and server